package com.testing.class4;

public class WashMachine {

    //属性，成员变量  field
    //创建类的变量的时候，可以给初值，也可以不给。
    //如果不给初值，那么默认的值是int为0,String为null
    int price;
    //静态变量修饰。
    static String brand = "海尔";
    String color = "白色";
    String cost;
    WashMachine washMachine;
    static final String KIND = "洗衣机";

    public WashMachine() {
        System.out.println("买了一台洗衣机");
    }

    public static void main(String[] args) {
        wash();
    }

    //不要给构造方法加返回类型，这样这个方法会被认为是个普通的方法，
    // 并且会提示你，这个方法和类名同名，是不对的
    public void WashMachine() {

    }

    //带参的构造方法，完成价格和能耗的赋值操作。
    public WashMachine(String cost, int price) {
        this.cost = cost;
        this.price = price;
    }

    //功能，方法  method
    //方法的构成要素：1、方法返回类型  2、方法名  3、形参列表（可以为空） 4、方法体
    //void 表示返回为空    ()表示方法定义，参数列表写在小括号里，可以为空
    //如果是void方法，方法体也可以为空，但是实际上里面隐式地有一句 return;
    static void wash() {
        System.out.println("洗衣机开始洗衣服了");
        //方法可以调用其它方法，甚至可以调用自己
//        wash();
        return;
    }

    //String 表示返回类型为字符串，这个方法需要返回一个字符串的内容供外部使用
    //如果返回类型不是void ，那么方法必须有return对应类型的语句。
    static String showBrand() {
        brand += "牌";
//        cost="能耗等级1";
        return brand;

    }

    //静态方法
    static void dry() {
        //可以调用静态方法
        showBrand();
        //不能调用非静态方法
//        wash();
        System.out.println("洗衣机带有甩干的功能");
    }

    /**
     * 输入钱数，返回是否能够购买洗衣机
     *
     * @param money 参数money用于传递钱数，判断是否足够购买
     * @return 返回购买结果。
     */
    String buywashMachine(int money) {
        //可以调用静态方法
        dry();
        //可以调用非静态方法
        wash();
        if (money < price) {
            System.out.println("品牌是" + brand);
            return "不好意思，你的钱不够";
        } else {
            return "恭喜你，喜提洗衣机一台";
        }
    }

    /**
     * public 表示 公有权限修饰符，大家都可以用这个方法
     *
     * @param money 输入price，赋值给类中的成员变量price。
     */
    public void setPrice(int money) {
        price = money;
    }

    public int getPrice() {
        return price;
    }
}
